home *** CD-ROM | disk | FTP | other *** search
- import re
- import os
-
- # The regular expression for freeze directives. These are comments with the
- # word macfreeze immedeately followed by a colon, followed by a directive,
- # followed by argument(s)
- #
- # The directives supported are
- # include - Include a module or file
- # exclude - Exclude a module
- # path - Add sys.path entries. Relative paths are relative to the source file.
- #
- # See the macfreeze.py main program for a real live example.
- #
- DIRECTIVE_RE=r'^\s*#\s*macfreeze:\s*(\S*)\s*(.*)\s*$'
- REPROG=re.compile(DIRECTIVE_RE)
-
- def findfreezedirectives(program):
- extra_modules = []
- exclude_modules = []
- extra_path = []
- progdir, filename = os.path.split(program)
- fp = open(program)
- for line in fp.readlines():
- match = REPROG.match(line)
- if match:
- directive = match.group(1)
- argument = match.group(2)
- if directive == 'include':
- extra_modules.append(argument)
- elif directive == 'exclude':
- exclude_modules.append(argument)
- elif directive == 'path':
- argument = os.path.join(progdir, argument)
- extra_path.append(argument)
- else:
- print '** Unknown directive', line
- return extra_modules, exclude_modules, extra_path
-
-